<?php
/**
 * Created by PhpStorm.
 * User: legendnan
 * Date: 2017-03-02
 * Time: 14:21
 * QQ  : 524881622
 */
define('LEGEND_VERSION','1.0.0');
define('EXT','.php');
define('DS',DIRECTORY_SEPARATOR);//定义系统分隔符
defined('THINKPATH') or define('THINKPATH', __DIR__ . DS);//项目根目录，Thinkphp目录
defined('LIB_PATH') or define('LIB_PATH', THINKPATH . 'library' . DS);//核心类库路径
defined('CORE_PATH') or define('CORE_PATH', LIB_PATH . 'think' . DS);//类库包目录，library/think
defined('TRAIT_PATH') or define('TRAIT_PATH', LIB_PATH . 'trait' . DS);//系统TRAIT目录。trait百度之发现她与class一样
defined('APP_PATH') or define('APP_PATH', dirname($_SERVER["SCRIPT_FILENAME"]) . DS);//dirnaem($_SERVER["SCRIPT_FILENAME"])获取当前路径，不包括文件本身
defined('ROOT_PATH') or define('ROOT_PATH', dirname(realpath(APP_PATH)) . DS);//realpath返回规范化绝对路径名APP_PATH = /../App
defined('EXTEND_PATH') or define('EXTEND_PATH', ROOT_PATH . 'extend' . DS);//扩展类目录
defined('VENDOR_PATH') or define('VENDOR_PATH', ROOT_PATH . 'vendor' . DS);//第三方类库（composer）
defined('RUNTIME_PATH') or define('RUNTIME_PATH', ROOT_PATH . 'runtime' . DS);//缓存目录
defined('LOG_PATH') or define('LOG_PATH', RUNTIME_PATH . 'log' . DS);//日志文件 放在缓存下了，我的想法是放在根目录下不知可行？
defined('CACHE_PATH') or define('CACHE_PATH', RUNTIME_PATH . 'cache' . DS);//模板缓存
defined('TEMP_PATH') or define('TEMP_PATH', RUNTIME_PATH . 'temp' . DS);//数据缓存
defined('CONF_PATH') or define('CONF_PATH', APP_PATH);//配置文件目录
defined('CONF_EXT') or define('CONF_EXT', EXT);//配置文件后缀
defined('ENV_PREFIX') or define('ENV_PREFIX', 'PHP_');//环境变量的配置签注

//环境变量
define('IS_CLI', PHP_SAPI == 'cli' ? true : false);//define('PHP_SAPI','cle')。php_sapi_name判断php所使用的接口类型
define('IS_WIN', strpos(PHP_OS, 'WIN') !== false);//strpos查找字符串首次出现位置

//引入Loader类
require CORE_PATH . 'loader.php';

//加载环境变量配置文件
/*
 * parse_ini_file 解析一个配置文件，成功返回array失败false
 * strtoupper全部转换成大写
 * putenv 设置环境变量成功true失败false
 * */
if (is_file(ROOT_PATH . '.env')) {
    $env = parse_ini_file(ROOT_PATH . '.env', true);
    foreach ($env as $key => $val) {
        if (is_array($val)) {
            foreach ($val as $k => $v) {
                $item = $name . '_' . strtoupper($k);
                putenv("$item=$v");
            }
        }
    }
}
//注册自动加载
\think\Loader::register();

//注册错误和异常处理机制
\think\Error::register();

//加载惯例配置文件
\think\Config::set(include THINKPATH . 'convention' . EXT);
